package com.dingding.service.account.facade;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import com.dingding.common.core.beans.Userintegraldetail;
import com.dingding.facade.account.integral.dto.GetUserIntegralDetailDTO;
import com.dingding.facade.account.integral.dto.UserInregralOperateDTO;
import com.dingding.facade.account.integral.enums.IntegralTradeTypeEnum;
import com.dingding.facade.account.integral.service.IUserIntegralService;
import com.dingding.service.account.core.dao.IUserIntegralDao;
import com.dingding.service.account.core.dao.IUserIntegralDetailDao;

/**
 * 
 * @ClassName: IUserIntegral
 * @Description: 用户积分操作服务接口实现 积分添加、删除、修改
 * @author CHEHAUNBO
 * @date 2016年3月30日 下午3:56:09
 * 
 */
@Component("userIntegralService")
public class UserIntegralServiceImpl implements IUserIntegralService {

	/**
	 * 用户积分表dao
	 */
	@Resource(name = "userIntegralDao")
	private IUserIntegralDao userIntegralDao;

	/**
	 * 用户积分交易明细DAO
	 */
	@Resource(name = "userIntegralDetailDao")
	private IUserIntegralDetailDao userIntegralDetailDao;

	/**
	 * 
	 * @Title: operdateUserInregral
	 * @Description:添加用户积分
	 * @param userInregralOperateDTO
	 *            数据传输BEAN
	 * @author CHEHAUNBO
	 * 
	 */
	@Override
	public void addUserInregral(UserInregralOperateDTO userInregralOperateDTO) {

		// 添加积分
		userIntegralDao.addUserIntegral(userInregralOperateDTO.getUserId(), userInregralOperateDTO.getIntegral());
		// 添加交易明细
		userIntegralDetailDao.addUserIntegralDetail(userInregralOperateDTO.getUserId(),
				userInregralOperateDTO.getIntegral(), IntegralTradeTypeEnum.Give,
				userInregralOperateDTO.getTradContent());

	}

	/**
	 * 
	 * @Title: deductUserInregral
	 * @Description:扣除用户积分
	 * @param userInregralOperateDTO
	 *            数据传输BEAN
	 * @author CHEHAUNBO
	 * 
	 */
	@Override
	public void deductUserInregral(UserInregralOperateDTO userInregralOperateDTO) {

		// 扣除用户积分
		userIntegralDao.deductUserIntegral(userInregralOperateDTO.getUserId(), userInregralOperateDTO.getIntegral());
		// 添加交易明细
		userIntegralDetailDao.addUserIntegralDetail(userInregralOperateDTO.getUserId(),
				userInregralOperateDTO.getIntegral(), IntegralTradeTypeEnum.Exchange,
				userInregralOperateDTO.getTradContent());

	}

	/**
	 * 
	 * @Title: getUserIntegralDetail
	 * @Description: 获取用户积分交易明细
	 * @param getUserIntegralDetailDTO
	 *            数据传输BEAN
	 * @author CHEHAUNBO
	 * 
	 */
	@Override
	public List<Userintegraldetail> getUserIntegralDetail(GetUserIntegralDetailDTO getUserIntegralDetailDTO) {

		return userIntegralDetailDao.getUserIntegralDetail(getUserIntegralDetailDTO.getUserId(),
				getUserIntegralDetailDTO.getRow(), getUserIntegralDetailDTO.getPageSize());

	}

}
